﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data;

namespace CAD.DAO
{
    public class DAOPuntos
    {
        public int Insertar(int LPUNTOS_ID, decimal IUBICACION_PUNTO, string SDESCIPCION_PUNTO_DSC, string SESTADO, int ICODIGO, int ICONCURRENCIA, int LLOCACIONES_ID)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();
            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPUNTOS_ID";
            prmA.Direction = ParameterDirection.Output;
            lstParametros.Add(prmA);

            DbParameter prmB = new SqlParameter();
            prmB.DbType = DbType.Decimal;
            prmB.ParameterName = "@IUBICACION_PUNTO";
            prmB.Value = IUBICACION_PUNTO;
            prmB.Direction = ParameterDirection.Input;
            lstParametros.Add(prmB);

            DbParameter prmC = new SqlParameter();
            prmC.DbType = DbType.String;
            prmC.ParameterName = "@SDESCIPCION_PUNTO_DSC";
            prmC.Value = SDESCIPCION_PUNTO_DSC;
            prmC.Direction = ParameterDirection.Input;
            lstParametros.Add(prmC);
              DbParameter prmCa = new SqlParameter();
            prmCa.DbType = DbType.String;
            prmCa.ParameterName = "@SESTADO";
            prmCa.Value = SESTADO;
            prmCa.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCa);
              DbParameter prmCs = new SqlParameter();
              prmCs.DbType = DbType.Int32;
            prmCs.ParameterName = " @ICODIGO";
            prmCs.Value = ICODIGO;
            prmCs.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCs);
              DbParameter prmCd = new SqlParameter();
              prmCd.DbType = DbType.Int32;
            prmCd.ParameterName = "@ICONCURRENCIA";
            prmCd.Value = 1;
            prmCd.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCd);
              DbParameter prmCf = new SqlParameter();
              prmCf.DbType = DbType.Int32;
            prmCf.ParameterName = " @LLOCACIONES_ID";
            prmCf.Value = LLOCACIONES_ID;
            prmCf.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCf);
        
            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 1;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);

            SQLConexion conProxy = new SQLConexion();
            if (conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PUNTOS"))
                return Convert.ToInt32(prmA.Value);
            return -1;

        }
        public int Insertar(int LPUNTOS_ID, int IUBICACION_PUNTO, string SDESCIPCION_PUNTO_DSC, string SESTADO, int ICODIGO, int ICONCURRENCIA, int LLOCACIONES_ID, SqlTransaction transaccion)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();
               DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPUNTOS_ID";
            prmA.Direction = ParameterDirection.Output;
            lstParametros.Add(prmA);

            DbParameter prmB = new SqlParameter();
            prmB.DbType = DbType.Int32;
            prmB.ParameterName = "@IUBICACION_PUNTO";
            prmB.Value = IUBICACION_PUNTO;
            prmB.Direction = ParameterDirection.Input;
            lstParametros.Add(prmB);

            DbParameter prmC = new SqlParameter();
            prmC.DbType = DbType.String;
            prmC.ParameterName = "@SDESCIPCION_PUNTO_DSC";
            prmC.Value = SDESCIPCION_PUNTO_DSC;
            prmC.Direction = ParameterDirection.Input;
            lstParametros.Add(prmC);
            DbParameter prmCa = new SqlParameter();
            prmCa.DbType = DbType.String;
            prmCa.ParameterName = "@SESTADO";
            prmCa.Value = SESTADO;
            prmCa.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCa);
            DbParameter prmCs = new SqlParameter();
            prmCs.DbType = DbType.Int32;
            prmCs.ParameterName = " @ICODIGO";
            prmCs.Value = ICODIGO;
            prmCs.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCs);
            DbParameter prmCd = new SqlParameter();
            prmCd.DbType = DbType.Int32;
            prmCd.ParameterName = "@ICONCURRENCIA";
            prmCd.Value = 1;
            prmCd.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCd);
            DbParameter prmCf = new SqlParameter();
            prmCf.DbType = DbType.Int32;
            prmCf.ParameterName = " @LLOCACIONES_ID";
            prmCf.Value = LLOCACIONES_ID;
            prmCf.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCf);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 1;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);
            SQLConexion conProxy = new SQLConexion();
            if (conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PUNTOS", transaccion))
                return Convert.ToInt32(prmA.Value);
            return -1;

        }
        public bool Actualizar(int LPUNTOS_ID, decimal IUBICACION_PUNTO, string SDESCIPCION_PUNTO_DSC, string SESTADO, int ICODIGO, int ICONCURRENCIA, int LLOCACIONES_ID)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();

            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPUNTOS_ID";
            prmA.Value = LPUNTOS_ID;
            prmA.Direction = ParameterDirection.Input;
            lstParametros.Add(prmA);

            DbParameter prmB = new SqlParameter();
            prmB.DbType = DbType.Decimal;
            prmB.ParameterName = "@IUBICACION_PUNTO";
            prmB.Value = IUBICACION_PUNTO;
            prmB.Direction = ParameterDirection.Input;
            lstParametros.Add(prmB);

            DbParameter prmC = new SqlParameter();
            prmC.DbType = DbType.String;
            prmC.ParameterName = "@SDESCIPCION_PUNTO_DSC";
            prmC.Value = SDESCIPCION_PUNTO_DSC;
            prmC.Direction = ParameterDirection.Input;
            lstParametros.Add(prmC);
            DbParameter prmCa = new SqlParameter();
            prmCa.DbType = DbType.String;
            prmCa.ParameterName = "@SESTADO";
            prmCa.Value = SESTADO;
            prmCa.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCa);
            DbParameter prmCs = new SqlParameter();
            prmCs.DbType = DbType.Int32;
            prmCs.ParameterName = " @ICODIGO";
            prmCs.Value = ICODIGO;
            prmCs.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCs);
            DbParameter prmCd = new SqlParameter();
            prmCd.DbType = DbType.Int32;
            prmCd.ParameterName = "@ICONCURRENCIA";
            prmCd.Value = 1;
            prmCd.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCd);
            DbParameter prmCf = new SqlParameter();
            prmCf.DbType = DbType.Int32;
            prmCf.ParameterName = " @LLOCACIONES_ID";
            prmCf.Value = LLOCACIONES_ID;
            prmCf.Direction = ParameterDirection.Input;
            lstParametros.Add(prmCf);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 2;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);
            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PUNTOS");
        }
        public bool Eliminar(int LPUNTOS_ID)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();

            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPUNTOS_ID";
            prmA.Value = LPUNTOS_ID;
            prmA.Direction = ParameterDirection.Input;
            lstParametros.Add(prmA);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 3;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);

            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarDML(lstParametros, "dbo.SPABM_PUNTOS");
        }
        public DataSet Traerpunto()
        {
            List<DbParameter> lstParametros = new List<DbParameter>();
            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 4;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);
            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarConsulta(lstParametros, "dbo.SPABM_PUNTOS");
        }
        public DataSet TraerpuntoxId(int LPUNTOS_ID)
        {
            List<DbParameter> lstParametros = new List<DbParameter>();

            DbParameter prmA = new SqlParameter();
            prmA.DbType = DbType.Int32;
            prmA.ParameterName = "@LPUNTOS_ID";
            prmA.Value = LPUNTOS_ID;
            prmA.Direction = ParameterDirection.Input;
            lstParametros.Add(prmA);

            DbParameter prmD = new SqlParameter();
            prmD.DbType = DbType.Int32;
            prmD.ParameterName = "@iEvento";
            prmD.Value = 5;
            prmD.Direction = ParameterDirection.Input;
            lstParametros.Add(prmD);
            SQLConexion conProxy = new SQLConexion();
            return conProxy.EjecutarConsulta(lstParametros, "dbo.SPABM_PUNTOS");
        }
       
    }
}
